// import { ElLoading } from "element-plus";
import _ from 'lodash'
let loadingBool = null;
let loadingNumber = 0;
const showLoading = ()=>{
    // 初始值为0，显示一个loading
    if(loadingNumber==0){
        loadingBool = ElLoading.service({fullscreen:true})
    }
    // 开始发送请求，第1个...第二个...第三个...
    loadingNumber++;
}

// _debounce是lodash的防抖方法
// 当使用可选链操作符 ?. 进行属性访问时，如果左右两边任何一个属性不存在，都会返回 undefined，而不会报错
const hideLoading = _.debounce(()=>{
    loadingBool?.close()
    loadingBool = null
},500)

const doneLoading = ()=>{
    // 第一个请求的数据回来了，loadingNumber--
    // 第二个请求的数据回来了，再次loadingNumber--
    // ...
    // 直到变为0，再把它隐藏掉
    loadingNumber--
    // 和0作比较，取最大值
    loadingNumber = Math.max(loadingNumber,0)
    if(loadingNumber == 0){
        hideLoading()
    }
}
 export {showLoading,doneLoading}